@tailwind base;

html {
  line-height: 1.15;
}

@tailwind components;

:not(input) {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

:root {
  --violet-gradient: linear-gradient(
    -180deg,
    rgba(144, 89, 255, 0.8) 0%,
    rgba(144, 89, 255, 0.4) 100%
  );
}

a {
  color: inherit;
  text-decoration: none;
}

a:focus {
  outline: 1px dotted grey;
}

body {
  background-image: url('../assets/bg.svg');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow-x: hidden;
}

.btn {
  @apply bg-blue-60;
  @apply text-white;
  @apply cursor-pointer;
  @apply py-4;
  @apply px-6;
  @apply font-semibold;
}

.btn:hover {
  @apply bg-blue-70;
}

.btn:focus {
  @apply bg-blue-70;
}

.checkbox {
  @apply leading-normal;
  @apply select-none;
}

.checkbox > input[type='checkbox'] {
  @apply absolute;
  @apply opacity-0;
}

.checkbox > label {
  @apply cursor-pointer;
}

.checkbox > label::before {
  /* @apply bg-grey-10; */
  @apply border;
  @apply rounded-sm;

  content: '';
  height: 1.5rem;
  width: 1.5rem;
  margin-right: 0.5rem;
  float: left;
}

.checkbox > label:hover::before {
  @apply border-blue-50;
}

.checkbox > input:focus + label::before {
  @apply border-blue-50;
}

.checkbox > input:checked + label::before {
  @apply bg-blue-50;
  @apply border-blue-50;

  background-image: url('../assets/lock.svg');
  background-position: center;
  background-size: 1.25rem;
  background-repeat: no-repeat;
}

.checkbox > input:disabled + label {
  cursor: auto;
}

.checkbox > input:disabled + label::before {
  @apply bg-blue-50;
  @apply border-blue-50;

  background-image: url('../assets/lock.svg');
  background-position: center;
  background-size: 1.25rem;
  background-repeat: no-repeat;
  cursor: auto;
}

details {
  overflow: hidden;
}

details > summary::-webkit-details-marker {
  display: none;
}

details > summary > svg {
  transition: all 0.25s cubic-bezier(0.07, 0.95, 0, 1);
}

details[open] {
  overflow-y: auto;
}

details[open] > summary > svg {
  transform: rotate(90deg);
}

footer li:hover {
  text-decoration: underline;
}

.feedback-link {
  background-color: #000;
  background-image: url('../assets/feedback.svg');
  background-position: 0.125rem 0.25rem;
  background-repeat: no-repeat;
  background-size: 1.125rem;
  color: #fff;
  display: block;
  font-size: 0.75rem;
  line-height: 0.75rem;
  padding: 0.375rem 0.375rem 0.375rem 1.25rem;
  text-indent: 0.125rem;
  white-space: nowrap;
}

.link-blue {
  @apply text-blue-60;
}

.link-blue:hover {
  @apply text-blue-70;
}

.link-blue:focus {
  @apply text-blue-70;
}

.main-header img {
  height: 32px;
  width: auto;
}

.intro {
  max-width: 100%;
  height: unset;
}

.main {
  display: flex;
  position: relative;
  max-width: 64rem;
  width: 100%;
  height: 100%;
}

.main > section {
  @apply bg-white;
}

.mozilla-logo {
  background-image: url('../assets/mozilla-logo.svg');
  background-repeat: no-repeat;
  background-size: 100px, 48px;
  overflow: hidden;
  text-indent: 120%;
  white-space: nowrap;
  display: inline-block;
  height: 32px;
  width: 100px;
  flex-shrink: 0;
}

#password-msg::after {
  content: '\200b';
}

progress {
  @apply bg-grey-30;
  @apply rounded-sm;
  @apply w-full;
  @apply h-1;
}

progress::-webkit-progress-bar {
  @apply bg-grey-30;
  @apply rounded-sm;
  @apply w-full;
  @apply h-1;
}

progress::-webkit-progress-value {
  /* stylelint-disable */
  background-image: -webkit-linear-gradient(
      -45deg,
      transparent 20%,
      rgba(255, 255, 255, 0.4) 20%,
      rgba(255, 255, 255, 0.4) 40%,
      transparent 40%,
      transparent 60%,
      rgba(255, 255, 255, 0.4) 60%,
      rgba(255, 255, 255, 0.4) 80%,
      transparent 80%
    ),
    -webkit-linear-gradient(left, #0a84ff, #0a84ff);
  /* stylelint-enable */
  border-radius: 2px;
  background-size: 21px 20px, 100% 100%, 100% 100%;
  -webkit-animation: animate-stripes 1s linear infinite;
}

progress::-moz-progress-bar {
  /* stylelint-disable */
  background-image: -moz-linear-gradient(
      135deg,
      transparent 20%,
      rgba(255, 255, 255, 0.4) 20%,
      rgba(255, 255, 255, 0.4) 40%,
      transparent 40%,
      transparent 60%,
      rgba(255, 255, 255, 0.4) 60%,
      rgba(255, 255, 255, 0.4) 80%,
      transparent 80%
    ),
    -moz-linear-gradient(left, #0a84ff, #0a84ff);
  /* stylelint-enable */
  border-radius: 2px;
  background-size: 21px 20px, 100% 100%, 100% 100%;
  animation: animate-stripes 1s linear infinite;
}

@-webkit-keyframes animate-stripes {
  100% {
    background-position: -21px 0;
  }
}

@keyframes animate-stripes {
  100% {
    background-position: -21px 0;
  }
}

select {
  background-image: url('../assets/select-arrow.svg');
  background-position: calc(100% - 0.75rem);
  background-repeat: no-repeat;
}

@screen md {
  .main-header img {
    height: 48px;
    width: auto;
  }

  .intro {
    max-width: unset;
    height: unset;
    margin-bottom: -3rem;
    margin-right: -7rem;
  }

  .main {
    @apply flex-1;
    @apply self-center;
    @apply items-center;
    @apply m-auto;
    @apply py-8;

    min-height: 36rem;
    max-height: 42rem;
    width: calc(100% - 3rem);
  }
}

@screen dark {
  body {
    @apply text-grey-10;

    background-image: unset;
  }

  .btn {
    @apply bg-blue-40;
    @apply text-white;
  }

  .btn:hover {
    @apply bg-blue-50;
  }

  .btn:focus {
    @apply bg-blue-50;
  }

  .link-blue {
    @apply text-blue-40;
  }

  .link-blue:hover {
    @apply text-blue-50;
  }

  .link-blue:focus {
    @apply text-blue-50;
  }

  .main > section {
    @apply bg-grey-90;
  }

  .mozilla-logo {
    background-color: white;
    border: 1px solid white;
  }

  @screen md {
    .main > section {
      @apply border;
      @apply border-grey-80;
    }
  }
}

@tailwind utilities;

@responsive {
  .shadow-light {
    box-shadow: 0 0 8px 0 rgba(12, 12, 13, 0.1);
  }

  .shadow-big {
    box-shadow: 0 12px 18px 2px rgba(34, 0, 51, 0.04),
      0 6px 22px 4px rgba(7, 48, 114, 0.12),
      0 6px 10px -4px rgba(14, 13, 26, 0.12);
  }
}

@variants focus {
  .outline {
    outline: 1px dotted grey;
  }
}

.word-break-all {
  word-break: break-all;
  line-break: anywhere;
}

.signin {
  backface-visibility: hidden;
  border-radius: 6px;
  transition-property: transform, background-color;
  transition-duration: 250ms;
  transition-timing-function: cubic-bezier(0.07, 0.95, 0, 1);
}

.signin:hover,
.signin:focus {
  transform: scale(1.0625);
}

.signin:hover:active {
  transform: scale(0.9375);
}

/* begin signin button color experiment */

.white-blue {
  @apply border-blue-60;
  @apply border-2;
  @apply text-blue-60;
}

.white-blue:hover,
.white-blue:focus {
  @apply bg-blue-60;
  @apply text-white;
}

.blue {
  @apply bg-blue-60;
  @apply text-white;
}

.white-violet {
  @apply border-violet;
  @apply border-2;
  @apply text-violet;
}

.white-violet:hover,
.white-violet:focus {
  @apply bg-violet;
  @apply text-white;

  background-image: var(--violet-gradient);
}

.violet {
  @apply bg-violet;
  @apply text-white;
}

.violet:hover,
.violet:focus {
  background-image: var(--violet-gradient);
}

/* end signin button color experiment */
